#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>

int main(int argc, char *argv[])
{
	int fd;
	int i;
	char rbuf[100];
	
	fd = open("/dev/blockio", O_RDWR/*|O_NONBLOCK*/);
	if(fd == -1)
	{
		perror("error");
		return -1;
	}

	if(argc >= 2)
	{
		for(i=1; i<argc; i++)
		{
			//将输入的命令行参数写入文件
			if(write(fd, argv[i], strlen(argv[i])) == -1)
			{
				perror("error");
				break;
			}
			//写入空格，用于分割参数
			if(write(fd, " ", strlen(" ")) == -1)
			{
				perror("error");
				break;
			}
		}
	}
	else
	{
		//从文件读取数据并显示
		for(; ; )
		{
			memset(rbuf, 0, sizeof(rbuf));
			if(read(fd, rbuf, sizeof(rbuf)) == -1)
			{
				perror("error");
				break;
			}
			printf("%s", rbuf);
			fflush(stdout);
		}
	}
	close(fd);
	return 0;
}
